package main

import "fmt"

// 使用了泛型
// 多种类型的组合，以集合的形式出现
// 数据类型可自定义
// 在真正使用函数时候才指定真实的数据类型
func sum[T float32 | float64 | int | string](a, b T) T {
	//T可以看作一个在函数内可以使用的局部数据类型
	//T类型归属的类型集合必须都支持+操作，否则例如指定【】int切片类型，则会报错
	return a + b
}

func main() {
	i := sum(1, 2)
	fmt.Println(i)
	fmt.Println(sum("a", "b"))
}
